home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 #2 / Ham Radio 2000 - Volume 2.iso / HAMV2 / MISC / HCAL-27 / YAGILONG.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1997-01-29  |  11.5 KB  |  376 lines

  1. 10  'YAGILONG - Extremely Long Yagi - 06 MAY 95 rev. 28 SEP 96
  2. 20  CLS:KEY OFF
  3. 30  IF EX$=""THEN EX$="EXIT"
  4. 40  COLOR 7,0,1
  5. 50  DIM S(100),D(100),DH(100),DL(100),T(100)
  6. 60  UL$=STRING$(80,205)
  7. 70  U$="#####.###"
  8. 80  '
  9. 90  '.....start
  10. 100  CLS
  11. 110  COLOR 15,2
  12. 120  PRINT " YAGI ANTENNA - Extremely Long";TAB(60);"by GENDnter Hoch DL6WU ";
  13. 130  COLOR 1,0:PRINT STRING$(80,223);
  14. 140  COLOR 7,0
  15. 150  TB=9
  16. 160  PRINT TAB(TB);
  17. 170  PRINT "Program written by Jerry Haigwood, KY4Z, and Bob Stein, W6NBI,"
  18. 180  PRINT TAB(TB);
  19. 190  PRINT "based on the article 'Extremely Long Yagi Antennas' by GENDnter"
  20. 200  PRINT TAB(TB);
  21. 210  PRINT "Hoch, DL6WU, in the March 1981 issue of VHF Communications."
  22. 220  PRINT TAB(TB);
  23. 230  PRINT "Program edited for HAMCALC by George Murphy, VE3ERP."
  24. 240  PRINT UL$;
  25. 250  COLOR 0,7:LOCATE CSRLIN,22
  26. 260  PRINT " Press 1 to continue or 0 to EXIT....."
  27. 270  COLOR 7,0
  28. 280  Z$=INKEY$:IF Z$=""THEN 280
  29. 290  IF Z$="0"THEN CLS:RUN EX$
  30. 300  IF Z$="1"THEN 320
  31. 310  GOTO 290
  32. 320  LOCATE CSRLIN-1:PRINT STRING$(80,32);:LOCATE CSRLIN-1
  33. 330  '
  34. 340  '.....input frequency
  35. 350  INPUT " ENTER: Design Frequency (MHz)........";F
  36. 360  IF F>0 GOTO 400
  37. 370  PRINT : PRINT" ---> STOP FOOLING AROUND - ENTER A FREQUENCY!"
  38. 380  PRINT : GOTO 350
  39. 390  '
  40. 400  VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
  41. 410  CM=29979.3 : I=11802.9<UNK! {0009}>'Wavelength factors for cm and in.
  42. 420  PRINT " Press number in < > to choose how you want to enter dimensions:
  43. 430  PRINT UL$;
  44. 440  PRINT "   < 1 >  Inches"
  45. 450  PRINT "   < 2 >  Centimetres"
  46. 460  PRINT "   < 3 >  Wavelengths"
  47. 470  P$=INKEY$
  48. 480  IF P$="1" OR P$="2" OR P$="3" THEN 510
  49. 490  GOTO 470
  50. 500  '
  51. 510  PRINT UL$;
  52. 520  IF P$="1"THEN PP$=" inches "
  53. 530  IF P$="2"THEN PP$=" cm "
  54. 540  IF P$="3"THEN PP$=" wavelengths "
  55. 550  PRINT " Press number in < > to select design option:"
  56. 560  PRINT UL$;
  57. 570  PRINT "   < 1 >  Enter antenna gain in dBd and accept calculated boom ";
  58. 580  PRINT "length"
  59. 590  PRINT "          ( dBd = gain over a half-wave dipole )"
  60. 600  PRINT "   < 2 >  Enter boom length and accept calculated gain"
  61. 610  B$=INKEY$
  62. 620  IF B$="1" OR B$="2" THEN 650
  63. 630  GOTO 610
  64. 640  '
  65. 650  PRINT UL$;
  66. 660  PRINT " Press number in < > to select type of construction:"
  67. 670  PRINT UL$;
  68. 680  PRINT "   < 1 >  Elements pass through and are NOT insulated from a metal ";
  69. 690  PRINT "boom"
  70. 700  PRINT "   < 2 >  Elements pass through and ARE insulated from a metal boom"
  71. 710  PRINT "   < 3 >  A non-metallic boom is used
  72. 720  PRINT "          --- OR ---
  73. 730  PRINT "          Elements are mounted on insulators above or below a metal"
  74. 740  PRINT "          boom with metal-to-metal spacing greater than the boom ";
  75. 750  PRINT "radius"
  76. 760  E$=INKEY$
  77. 770  IF E$="1" OR E$="2" OR E$="3" THEN 800
  78. 780  GOTO 760
  79. 790  '
  80. 800  VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
  81. 810  IF B$="2" THEN 1090
  82. 820  '
  83. 830  PRINT" ANTENNA GAIN MUST BE BETWEEN 11.8 dBd AND 21.5 dBd"
  84. 840  PRINT
  85. 850  INPUT" ENTER: Antenna Gain (dBd)........" ;G
  86. 860  IF G>=11.8 AND G<=21.5 THEN 930
  87. 870  PRINT" ---> GAIN IS OUT OF RANGE - TRY AGAIN!"
  88. 880  PRINT " Press any key to continue......"
  89. 890  IF INKEY$=""THEN 890
  90. 900  VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
  91. 910  GOTO 830
  92. 920  '
  93. 930  '.....boom wavelengths for specified gain
  94. 940  BL=EXP((G-9.2)/3.39)
  95. 950  B1=BL*I/F<UNK! {0009}><UNK! {0009}><UNK! {0009}>'Boom length in in.
  96. 960  B2=BL*CM/F<UNK! {0009}><UNK! {0009}><UNK! {0009}>'Boom length in cm
  97. 970  B3=B1/12<UNK! {0009}><UNK! {0009}><UNK! {0009}>'Boom length in ft
  98. 980  PRINT
  99. 990  PRINT " THEORETICAL BOOM LENGTH FROM REFLECTOR TO LAST DIRECTOR:"
  100. 1000  PRINT USING"  ###.## feet =  ####.## inches =  #####.# cm";B3,B1,B2
  101. 1010  PRINT
  102. 1020  PRINT " Do you want to use this boom length?  (y/n)"
  103. 1030  C$=INKEY$
  104. 1040  IF C$="Y"OR C$="y"THEN 1440
  105. 1050  IF C$="N"OR C$="n"THEN 1070
  106. 1060  GOTO 1030
  107. 1070  VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3:GOTO 550
  108. 1080  '
  109. 1090  '.....boom length
  110. 1100  PRINT " BOOM LENGTH FROM REFLECTOR TO LAST DIRECTOR MUST BE BETWEEN"
  111. 1110  PRINT" 2.2 AND 38.5 WAVELENGTHS"
  112. 1120  PRINT
  113. 1130  INCH1=INT(2.2*I/F*10^2+0.5)/10^2:INCH2=INT(38.5*I/F*10^2+0.5)/10^2
  114. 1140  CENT1=INT(2.2*CM/F*10+0.5)/10:CENT2=INT(38.5*CM/F*10+0.5)/10
  115. 1150  IF P$="1"THEN PRINT " Length @";F;"MHz must be between";INCH1;"and";
  116. 1160  IF P$="1"THEN PRINT INCH2;"inches"
  117. 1170  IF P$="2"THEN PRINT " Length @";F;"MHz must be between";CENT1;"and";
  118. 1180  IF P$="2"THEN PRINT CENT2;"cm"
  119. 1190  PRINT
  120. 1200  PRINT " ENTER: Boom Length (";PP$;").....";:INPUT BL
  121. 1210  IF P$="1" AND BL=>2.2*I/F AND BL=<38.5*I/F GOTO 1290
  122. 1220  IF P$="2" AND BL=>2.2*CM/F AND BL=<38.5*CM/F GOTO 1290
  123. 1230  IF P$="3" AND BL=>2.2 AND BL=<38.5 GOTO 1290
  124. 1240  PRINT
  125. 1250  GOSUB 3430
  126. 1260  VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3:GOTO 1090
  127. 1270  GOTO 1110
  128. 1280  '
  129. 1290  A=BL
  130. 1300  GOSUB 3270
  131. 1310  BL=A<UNK! {0009}><UNK! {0009}>'Boom wavelengths
  132. 1320  G=9.2+3.39*LOG(BL) 'Gain in terms of boom length
  133. 1330  PRINT
  134. 1340  PRINT USING" THEORETICAL MAX. ANTENNA GAIN = ##.# dBd -- IT MAY BE LESS";G
  135. 1350  PRINT
  136. 1360  PRINT " Do you want to accept this gain?  (y/n)"
  137. 1370  A$=INKEY$
  138. 1380  IF A$="Y"OR A$="y"THEN 1440
  139. 1390  IF A$="N"OR A$="n"THEN 1420
  140. 1400  GOTO 1370
  141. 1410  IF A$="Y" OR A$="y" THEN 1440
  142. 1420  VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3:GOTO 1090
  143. 1430  '
  144. 1440  IF E$="3" GOTO 1640
  145. 1450  VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
  146. 1460  PRINT" BOOM DIAMETER MUST BE LESS THAN 0.075 WAVELENGTH"
  147. 1470  PRINT
  148. 1480  INCH=INT(0.075*I/F*10^3+0.5)/10^3
  149. 1490  CENT=INT(0.075*CM/F*10^2)/10^2
  150. 1500  IF P$="1"THEN PRINT " 0.075 Wavelength @";F;"MHz =";INCH;"inches"
  151. 1510  IF P$="2"THEN PRINT " 0.075 Wavelength @";F;"MHz =";CENT;"cm"
  152. 1520  PRINT
  153. 1530  PRINT " ENTER: Boom Diameter (";PP$;")..... ";:INPUT BD
  154. 1540  IF P$="1" AND BD=<0.075*I/F GOTO 1610
  155. 1550  IF P$="2" AND BD=<0.075*CM/F GOTO 1610
  156. 1560  IF P$="3" AND BD=<0.075 GOTO 1610
  157. 1570  PRINT
  158. 1580  GOSUB 3430
  159. 1590  VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3:GOTO 1440
  160. 1600  '
  161. 1610  A=BD
  162. 1620  GOSUB 3270
  163. 1630  BD=A<UNK! {0009}>'Boom diameter in wavelengths
  164. 1640  VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
  165. 1650  PRINT" ELEMENT DIAMETER MUST BE BETWEEN 0.001 AND 0.02 WAVELENGTH"
  166. 1660  PRINT
  167. 1670  INCH1=INT(0.000999999*I/F*10^3+0.5)/10^3:INCH2=INT(0.02*I/F*10^3+0.5)/10^3
  168. 1680  CENT1=INT(0.000999999*CM/F*10^2+0.5)/10^2:CENT2=INT(0.02*CM/F*10^2+0.5)/10^2
  169. 1690  IF P$="1"THEN PRINT " Diameter @";F;"MHz must be between";INCH1;"and";
  170. 1700  IF P$="1"THEN PRINT INCH2;"inches"
  171. 1710  IF P$="2"THEN PRINT " Diameter @";F;"MHz must be between";CENT1;"and";
  172. 1720  IF P$="2"THEN PRINT CENT2;"cm"
  173. 1730  '
  174. 1740   PRINT
  175. 1750   PRINT " ENTER: Driven Element Diameter (";PP$;")......";:INPUT DD
  176. 1760   IF P$="1" AND DD=>0.000999999*I/F AND DD=<0.02*I/F GOTO 1830
  177. 1770   IF P$="2" AND DD=>0.000999999*CM/F AND DD=<0.02*CM/F GOTO 1830
  178. 1780   IF P$="3" AND DD=>0.000999999 AND DD=<0.02 GOTO 1830
  179. 1790   PRINT
  180. 1800   GOSUB 3430
  181. 1810   VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3:GOTO 1630
  182. 1820  '
  183. 1830   A=DD
  184. 1840   GOSUB 3270
  185. 1850   PRINT
  186. 1860   DD=A
  187. 1870  '
  188. 1880  PRINT " ENTER: Parasitic Element Diameter (";PP$;")....";:INPUT ED
  189. 1890  LN=CSRLIN-1
  190. 1900  IF P$="1" AND ED=>0.000999999*I/F AND ED=<0.02*I/F GOTO 1970
  191. 1910  IF P$="2" AND ED=>0.000999999*CM/F AND ED=<0.02*CM/F GOTO 1970
  192. 1920  IF P$="3" AND ED=>0.000999999 AND ED=<0.02 GOTO 1970
  193. 1930  PRINT
  194. 1940  GOSUB 3430
  195. 1950  VIEW PRINT LN TO 24:CLS:VIEW PRINT:LOCATE LN:GOTO 1860
  196. 1960  '
  197. 1970  A=ED
  198. 1980  GOSUB 3270
  199. 1990  ED=A <UNK! {0009}>        'Element diameter in wavelengths
  200. 2000  SR=0.216144<UNK! {0009}><UNK! {0009}>'Reflector spacing
  201. 2010  LA=BL-SR<UNK! {0009}><UNK! {0009}>'Subtract reflector spacing from boom length
  202. 2020  '
  203. 2030  FOR N=1 TO 14<UNK! {0009}>'First 14 directors
  204. 2040  S(N)=0.081444+0.12178*LOG(N)<UNK! {0009}>'Director spacing from previous element
  205. 2050  IF N=1 THEN T(N)=SR+S(N) ELSE T(N)=T(N-1)+S(N) 'Tot.distance from reflector
  206. 2060  LA=LA-S(N)         'Subtract from boom length
  207. 2070  IF LA<0 THEN M=N-1 : LA=LA+S(N) : GOTO 2170<UNK! {0009}>'Last director number
  208. 2080  NEXT N
  209. 2090  '
  210. 2100  FOR N=15 TO 100    'From director 15 on
  211. 2110  S(N)=S(14)         'Constant spacing after director 14
  212. 2120  T(N)=T(N-1)+S(N)<UNK! {0009}>'Total distance from reflector
  213. 2130  LA=LA-S(N)         'Subtract from boom length
  214. 2140  IF LA<0 THEN M=N-1 : LA=LA+S(N) : GOTO 2170<UNK! {0009}>'Last director number
  215. 2150  NEXT N
  216. 2160  '
  217. 2170  LL=BL-LA              'Boom length from reflector to last director
  218. 2180  G1=9.2+3.39*LOG(LL)   'Actual gain based on active boom length
  219. 2190  IF G1<11.8 THEN BL=1.05*BL ELSE GOTO 2220<UNK! {0009}>'Increment until G1=9.8
  220. 2200  GOTO 2010
  221. 2210  '
  222. 2220  '.....calculate factors for element length equation
  223. 2230  FOR Q=1 TO 7
  224. 2240  READ K,K1,K2,K3,K4    'K=standard element diameter
  225. 2250  IF K=ED THEN J=0 : GOTO 2340
  226. 2260  IF K<ED THEN L=K ELSE GOTO 2280
  227. 2270  KL1=K1 : KL2=K2 : KL3=K3 : KL4=K4
  228. 2280  IF K>ED THEN H=K ELSE GOTO 2310
  229. 2290  KH1=K1 : KH2=K2 : KH3=K3 : KH4=K4
  230. 2300  GOTO 2330
  231. 2310  NEXT Q
  232. 2320  '
  233. 2330  J=(ED-L)/(H-L)<UNK! {0009}>'Interpolation factor
  234. 2340  R=0.476945<UNK! {0009}><UNK! {0009}>'Reflector length
  235. 2350  IF E$="1" OR E$="2" THEN X=R ELSE GOTO 2380
  236. 2360  GOSUB 3320
  237. 2370  R=X
  238. 2380  DE=0.47192
  239. 2390  'DE=(.4777-(1.0522*DD)+(.43363*(DD^-.014891)))/2    'Driven element length
  240. 2400  '
  241. 2410  '.....calculate director lengths
  242. 2420  FOR N=1 TO M
  243. 2430  IF J=0 THEN D(N)=(K1-K2*LOG(N))*(1-K3*EXP(-K4*N)) ELSE GOSUB 3370 'Dir lgth
  244. 2440  IF E$="1" OR E$="2" THEN X=D(N) ELSE GOTO 2470
  245. 2450  GOSUB 3320
  246. 2460  D(N)=X
  247. 2470  NEXT N
  248. 2480  CLS
  249. 2490  '
  250. 2500  '.....screen display
  251. 2510  PRINT " DL6WU LONG YAGI ANTENNA"
  252. 2520  PRINT UL$;
  253. 2530  PRINT TAB(9);"Centre Frequency.............";USING U$;F;
  254. 2540  PRINT " MHz  (";USING U$;300/F;:PRINT " metres )"
  255. 2550  PRINT TAB(9);"Gain.........................";USING U$;G1;:PRINT " dB ";
  256. 2560  PRINT "over a RENUM wave dipole"
  257. 2570  PRINT TAB(9);"Driven Element...............  Folded Dipole"
  258. 2580  PRINT TAB(9);"Drive Impedance..............  200 - (approximate)"
  259. 2590  FT=LL*I/(F*12):IN=LL*I/F:CE=LL*CM/F
  260. 2600  PRINT TAB(9);"Reflector to last Director...";USING U$;CE;:PRINT " cm    COLOR"
  261. 2610  PRINT TAB(9);"                            =";USING U$;IN;:PRINT " inchesBLOAD";
  262. 2620  PRINT " = minimum boom length"
  263. 2630  PRINT TAB(9);"                            =";USING U$;FT;:PRINT " feet  '"
  264. 2640  IF E$="3" GOTO 2680
  265. 2650  IN=BD*I/F:CE=BD*CM/F
  266. 2660  PRINT TAB(9);"Boom Diameter................";USING U$;CE;:PRINT " cm"
  267. 2670  PRINT TAB(9);"                            =";USING U$;IN;:PRINT " inches"
  268. 2680  IN=DD*I/F:CE=DD*CM/F
  269. 2690  PRINT TAB(9);"Driven Element Diameter......";USING U$;CE;:PRINT " cm"
  270. 2700  PRINT TAB(9);"                            =";USING U$;IN;:PRINT " inches"
  271. 2710  IN=ED*I/F:CE=ED*CM/F
  272. 2720  PRINT TAB(9);"Parasitic Element Diameter...";USING U$;CE;:PRINT " cm"
  273. 2730  PRINT TAB(9);"                            =";USING U$;IN;:PRINT " inches"
  274. 2740  PRINT TAB(9);"No. of Parasitic Elements....";USING "#####";M
  275. 2750  PRINT UL$;
  276. 2760  IF E$="1" THEN PRINT TAB(9);"Elements pass through and are NOT ";
  277. 2770  IF E$="1" THEN PRINT "insulated from a metal boom"
  278. 2780  IF E$="2" THEN PRINT TAB(9);"Elements pass through and are insulated ";
  279. 2790  IF E$="2" THEN PRINT "from a metal boom"
  280. 2800  IF E$="3" THEN PRINT TAB(9);"Boom is non-metallic"
  281. 2810  IF E$="3" THEN PRINT TAB(9);"     --- OR ---"
  282. 2820  IF E$="3" THEN PRINT TAB(9);"Elements are mounted on insulators above ";
  283. 2830  IF E$="3" THEN PRINT "or below a metal boom";
  284. 2840  IF E$="3" THEN PRINT TAB(9);"with metal-to-metal spacing greater than ";
  285. 2850  IF E$="3" THEN PRINT "the boom radius"
  286. 2860  PRINT UL$;
  287. 2870  GOSUB 3630
  288. 2880  '
  289. 2890  '.....diagram
  290. 2900  CLS
  291. 2910  Z=7    'indent
  292. 2920  PRINT TAB(29);"DL6WU LONG YAGI ANTENNA"
  293. 2930  PRINT UL$;
  294. 2940  PRINT TAB(Z+2);"CUMULATIVE";TAB(Z+57);"ELEMENT"
  295. 2950  PRINT TAB(Z+2);"SPACING";TAB(Z+57);"LENGTH"
  296. 2960  PRINT TAB(Z);"THENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHEN";TAB(Z+53);"THENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHEN"
  297. 2970  PRINT TAB(Z);"cm";TAB(Z+8);"inches";TAB(Z+53);"cm";TAB(Z+61);"inches"
  298. 2980  PRINT TAB(Z);"SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND";TAB(Z+53);"SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND"
  299. 2990  PRINT TAB(Z);"0";TAB(Z+10);"0";
  300. 3000  PRINT TAB(Z+16);"Reflector SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDBEEPSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND-";
  301. 3010  PRINT TAB(Z+51);USING "###.##";R*CM/F;
  302. 3020  PRINT TAB(Z+61);USING"###.###";R*I/F
  303. 3030  PRINT TAB(Z+36);"CALL"
  304. 3040  PRINT TAB(Z-2);USING"###.##";SR*CM/F;
  305. 3050  PRINT TAB(Z+9);USING"##.###";SR*I/F;
  306. 3060  PRINT TAB(Z+16);"Driven El. THENTHENTHENTHENTHENTHENTHENTHENTHENINSTRTHENTHENTHENTHENTHENTHENTHENTHENTHEN";
  307. 3070  PRINT TAB(Z+50);USING "####.##";DE*CM/F;
  308. 3080  PRINT TAB(Z+61);USING "###.###";DE*I/F
  309. 3090  '
  310. 3100  ROW=10       'default row number
  311. 3110  FOR N=1 TO M
  312. 3120  ROW=ROW+1
  313. 3130  PRINT TAB(Z+36);"CALL"
  314. 3140  ROW=ROW+1
  315. 3150  PRINT TAB(Z-4);USING"#####.##";T(N)*CM/F;
  316. 3160  PRINT TAB(Z+7);USING"####.###";T(N)*I/F;
  317. 3170  PRINT TAB(Z+20);
  318. 3180  IF N<=9 THEN PRINT " ";
  319. 3190  PRINT "D"+STR$(N)+"    SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDBEEPSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND-";
  320. 3200  PRINT TAB(Z+50);USING "####.##";D(N)*CM/F;
  321. 3210  PRINT TAB(Z+61);USING"###.###";D(N)*I/F;
  322. 3220  IF ROW<24 THEN PRINT "":GOTO 3240
  323. 3230  GOSUB 3630:CLS:ROW=0
  324. 3240  NEXT N
  325. 3250  GOTO 3580       'end
  326. 3260  '
  327. 3270  '.....convert measurements
  328. 3280  IF P$="1" THEN A=A*F/I             'Convert in. to wavelength
  329. 3290  IF P$="2" THEN A=A*F/CM<UNK! {0009}><UNK! {0009}>'Convert cm to wavelength 
  330. 3300  RETURN
  331. 3310  '
  332. 3320  '.....correction factors for element lengths
  333. 3330  IF E$="1" THEN X=X+0.6*BD
  334. 3340  IF E$="2" THEN X=X+0.25*BD
  335. 3350  RETURN
  336. 3360  '
  337. 3370  '.....interpolate for D(N)
  338. 3380  DL(N)=(KL1-KL2*LOG(N))*(1-KL3*EXP(-KL4*N))
  339. 3390  DH(N)=(KH1-KH2*LOG(N))*(1-KH3*EXP(-KH4*N))
  340. 3400  D(N)=DL(N)+J*(DH(N)-DL(N))
  341. 3410  RETURN
  342. 3420  '
  343. 3430  '.....entry not valid
  344. 3440  PRINT " ---> INCORRECT ENTRY - TRY AGAIN! (press any key to continue....)"
  345. 3450  IF INKEY$=""THEN 3450
  346. 3460  RETURN
  347. 3470  '
  348. 3480  'First number in each data line is element diameter.  Next 4 numbers are
  349. 3490  'K1-K4, used to determine element lengths.
  350. 3500  DATA .001,.4711,.018,.08398,.965
  351. 3510  DATA .003,.462,.01941,.08543,.9697
  352. 3520  DATA .005,.4538,.02117,.0951,1.007
  353. 3530  DATA .007,.4491,.02274,.08801,.9004
  354. 3540  DATA .01,.4421,.02396,.1027,1.038
  355. 3550  DATA .015,.4358,.02558,.1149,1.034
  356. 3560  DATA .02,.4268,.02614,.1112,1.036
  357. 3570  '
  358. 3580  '.....end
  359. 3590  GOSUB 3630
  360. 3600  GOTO 90   'start
  361. 3610  END
  362. 3620  '
  363. 3630  'HARDCOPY
  364. 3640  GOSUB 3750:LOCATE 25,2:COLOR 14,6
  365. 3650  PRINT " Press 1 to print screen, 2 to print screen & ";
  366. 3660  PRINT "advance paper, or 3 to continue.";:COLOR 7,0
  367. 3670  Z$=INKEY$:IF Z$="3"THEN GOSUB 3750:RETURN
  368. 3680  IF Z$="1"OR Z$="2"THEN GOSUB 3750:GOTO 3700
  369. 3690  GOTO 3670
  370. 3700  FOR QX=1 TO 24:FOR QY=1 TO 80
  371. 3710  LPRINT CHR$(SCREEN(QX,QY));
  372. 3720  NEXT QY:NEXT QX
  373. 3730  IF Z$="2"THEN LPRINT CHR$(12)
  374. 3740  GOTO 3640
  375. 3750  LOCATE 25,1:PRINT STRING$(80,32);:RETURN
  376.